package com.company.genealogy.web.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * 用户贡献Mapper
 */
@Mapper
public interface UserContributionMapper {

    /**
     * 插入用户贡献记录
     * 
     * @param params 贡献参数
     * @return 影响行数
     */
    int insertContribution(Map<String, Object> params);

    /**
     * 获取贡献排行榜
     * 
     * @param clanId 家族ID
     * @param limit 限制数量
     * @return 排行榜
     */
    List<Map<String, Object>> getTopContributors(@Param("clanId") Long clanId, @Param("limit") int limit);
    
    /**
     * 获取用户贡献统计
     * 
     * @param userId 用户ID
     * @param clanId 家族ID
     * @return 贡献统计
     */
    Map<String, Object> getUserContribution(@Param("userId") Long userId, @Param("clanId") Long clanId);

    /**
     * 获取当前用户贡献
     */
    @Select("SELECT SUM(points) FROM tb_user_contribution WHERE user_id = #{userId}")
    Long getCurrentUserContributions(@Param("userId") Long userId);
} 